#ifndef QUEUE_H
#define QUEUE_H

#include <stdint.h>
#include <stdbool.h>

#define QUEUE_MAX_SIZE 1024

typedef struct {
    uint32_t capacity;
    uint32_t size;
    uint32_t front;
    uint32_t rear;
    uint8_t* array; 
} Queue;

bool queue_init(Queue* q, uint8_t* array, uint32_t capacity);
bool queue_enqueue(Queue* q, uint8_t item); 
uint8_t queue_dequeue(Queue* q); 
uint32_t queue_size(Queue* q);
bool queue_is_empty(Queue* q); 

#endif // QUEUE_H
